Reasoning About DrScheme Programs in ACL2
نویسندگان
چکیده
Beginning programmers need to learn more than the syntax of programming languages. They also need to learn how to reason about the programs they write. Thus we believe that beginners will benefit from tools that help them understand their programs, just as they already benefit from IDEs that help them to build and debug their programs. This paper describes a project aimed at automating some of the techniques required to reason about programs in Beginning Student Language (BSL), the first language in DrScheme’s How to Design Programs curriculum [4]. The automation is based on the theorem prover ACL2.
منابع مشابه
Polymorphism in ACL2
The logic of ACL2 is descended from λ-calculus via Common LISP. It is well-known that this logic is su cient to reason about arbitrary computations. However, λ-calculus is not today's dominant programming paradigm. To reason about today's programs, as opposed to today's computations, we need a logic that supports modern programming practices. In this paper, we present an approach that allows AC...
متن کاملThe x86isa Books: Features, Usage, and Future Plans
The x86isa library, incorporated in the ACL2 community books project, provides a formal model of the x86 instruction-set architecture and supports reasoning about x86 machine-code programs. However, analyzing x86 programs can be daunting — even for those familiar with program verification, in part due to the complexity of the x86 ISA. Furthermore, the x86isa library is a large framework, and us...
متن کاملReasoning About LLVM Code Using Codewalker
This paper reports on initial experiments using J Moore’s Codewalker to reason about programs compiled to the Low-Level Virtual Machine (LLVM) intermediate form. Previously, we reported on a translator from LLVM to the applicative subset of Common Lisp accepted by the ACL2 theorem prover, producing executable ACL2 formal models, and allowing us to both prove theorems about the translated models...
متن کاملJava Program Verification via a JVM Deep Embedding in ACL2
In this paper, we show that one can “deep-embed” the Java bytecode language, a fairly complicated language with a rich semantics, into the first order logic of ACL2 by modeling a realistic JVM. We show that with proper support from a semi-automatic theorem prover in that logic, one can reason about the correctness of Java programs. This reasoning can be done in a direct and intuitive way withou...
متن کاملIvy : a Preprocessor and Proofchecker for First - Order
This case study shows how non-ACL2 programs can be combined with ACL2 functions in such a way that useful properties can be proved about the composite programs. Nothing is proved about the non-ACL2 programs. Instead, the results of the non-ACL2 programs are checked at run time by ACL2 functions, and properties of these checker functions are proved. The application is resolution/paramodulation a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010